Business organizations, and large companies and governments in particular have a need to have up-to-date information regarding the equipment that exist in an organization, the programs that are installed on these devices, which programs are actually in execution at any particular time. In addition, other data, such as financial information is needed to understand characteristics such as costs being incurred by the organization by virtue of the existence and use of various assets. Thus, management usually is interested in knowing costs to run a particular type of server. Management usually wants to know what leases exist and what their terms are. Management often also wants to know which software licenses exist and the terms of those licenses such as how many copies of the program are licensed and costs for use of the licensed software versus that actual number of copies of the licensed software the organization is actually using and how frequently the program is being used. There are a myriad of other issues management is interested in knowing about an organization and a myriad of different ways in which this information must be gathered.
This information is important to management to enable it to make better decisions regarding managing the business entity. Prior to the invention, most of the various types of information of interest had to be gathered manually which made it subject to errors and not always completely up-to-date. In addition, this manual effort represents overhead burden on the labor resource available to the corporation in performing work which is not directly related to producing products or services for sale. As such, it represents a drain on the assets of the organization.
It is useful to have a management tool which is able to automatically gather information about any business organization. It is also useful for such a tool to be able to gather all or most of the needed information without having any particular foreknowledge about the types of computers, operating systems and installed programs that the organization has.
In order to automatically gather information accurately regarding which application programs are installed on a computer, it is necessary to know which file names and file types and which dynamic linked libraries, etc. will be present if a particular application program is fully installed on a computer. This information must be known for every possible application program (or at least the ones which are to be automatically detected by the computer) and version thereof.
In order to determine what type of computing devices exist at each network address and other information about the machine, the proper queries that may be made to the operating system running on the machine to return information about the computer on which the operating system is running must be known. Frequently, the type of operating system running on each machine in all or a designated subset of networks of a large organization is not precisely known.
A prior art tool exists which allows automatic detection of the type of operating system which exists on a computer at a particular network address, but this tool cannot detect what type of computer the operating system is running on, the CPU speed, the chip set in use, or the mounted file system, the files thereof which are accessible or the application programs which are installed. The way this prior art tool works is to send a specific type of network packet to the unknown machine at the network address. This network packet has an undefined response packet. Each operating system deals with arrival of such a packet differently. By examining the response packet, the prior art tool determines which type of operating system is operating on the unknown machine.
However, to gather all the information needed by the financial officers and managers of a company today requires people to report every time a new machine is purchased, a new license is signed, a new lease or maintenance agreement is signed, new software is installed etc. Given the fact that people in the organization are busy trying to do their other jobs and make sure their systems do not fail, this type of manual reporting system soon fails and becomes out of date. Further, when there is turnover, the new employee does not know where the last employee left off in the reporting process.
No current system of which the inventive entity is aware has the ability to automatically determine the types of machines and operating systems that an organization has installed, the software that is installed on these machines, extract key terms from licenses, maintenance agreements, financial documents, etc. and automatically gather any other type of data that leaves a mark on a company. Specifically, no prior art system can detect: which operating system is installed on each computer in an organization; the type of computer and other information about the computer such as the mounted file system, chip set, available files, network cards installed; which software programs are installed on each computer and which processes are running on the computer; and, use predefined data collection procedures to collect financial and other types of data, and then encode all the gathered information in a data structure which can be mined for information by management.
Other prior art systems exist which monitor and/or control the use or performance of software on machines in a user's organization such as the systems offered by Globetrotter. In these systems, computers in the network of a user have known software applications installed on them. These agent programs are installed on these computers which monitor which programs are running and report launches to a licensing server for purposes of obtaining an authorization for the launch. The licensing server sends back an authorization or denial message, and the agent either lets the launch proceed or kills the application. These type systems were formerly offered by Wyatt River Software and Rainbow and similar systems were offered by Globetrotter. Other systems utilize agents which gather information about utilization of a computer's resources and report that information to a central server which stores it and uses it for analysis or billing purposes. Systems for monitoring the utilization of assets in a company are offered by Computer Associates as the Unicenter product, BMC Patrol, HP OpenView, Tivoli, etc.
None of these type prior art systems can automatically identify what types of assets the company has or extract key provisions of financial documents, leases, licenses, etc.
Therefore, a need has arisen for a system which can automatically determine the resources, i.e., computers, operating systems, application programs, that are installed on the networks of a company and automatically gather financial information such as costs, the existence and terms of leases, licenses, etc. A tool is needed to evaluate, encode, and store the gathered information in a data structure which can be used by management to get an accurate, up-to-date picture of the make-up of a business organization at any point in time to enable better management decision making.